solve_lu Interface

public interface solve_lu

Module Procedures

private subroutine solve_lu_mtx(a, ipvt, b, err)

Solves a system of LU-factored equations.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:,:) :: a

The N-by-N LU factored matrix as output by lu_factor.

integer(kind=int32), intent(in), dimension(:) :: ipvt

The N-element pivot array as output by lu_factor.

real(kind=real64), intent(inout), dimension(:,:) :: b

On input, the N-by-NRHS right-hand-side matrix. On output, the N-by-NRHS solution matrix.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_lu_mtx_cmplx(a, ipvt, b, err)

Solves a system of LU-factored equations.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(in), dimension(:,:) :: a

The N-by-N LU factored matrix as output by lu_factor.

integer(kind=int32), intent(in), dimension(:) :: ipvt

The N-element pivot array as output by lu_factor.

complex(kind=real64), intent(inout), dimension(:,:) :: b

On input, the N-by-NRHS right-hand-side matrix. On output, the N-by-NRHS solution matrix.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_lu_vec(a, ipvt, b, err)

Solves a system of LU-factored equations.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:,:) :: a

The N-by-N LU factored matrix as output by lu_factor.

integer(kind=int32), intent(in), dimension(:) :: ipvt

The N-element pivot array as output by lu_factor.

real(kind=real64), intent(inout), dimension(:) :: b

The N-element right-hand-side array.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine solve_lu_vec_cmplx(a, ipvt, b, err)

Solves a system of LU-factored equations.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(in), dimension(:,:) :: a

The N-by-N LU factored matrix as output by lu_factor.

integer(kind=int32), intent(in), dimension(:) :: ipvt

The N-element pivot array as output by lu_factor.

complex(kind=real64), intent(inout), dimension(:) :: b

The N-element right-hand-side array.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine csr_lu_solve(lu, ju, b, x, err)

Solves a linear system using an LU decomposition.

Arguments

Type IntentOptional Attributes Name
class(msr_matrix), intent(in) :: lu

The LU matrix.

integer(kind=int32), intent(in), dimension(:) :: ju

The row tracking array.

real(kind=real64), intent(in), dimension(:) :: b

The right-hand side.

real(kind=real64), intent(out), dimension(:) :: x

The solution.

class(errors), intent(inout), optional, target :: err

The error object to be updated.